package com.yqh.Collection.List;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * List 集合的遍历方式
 *
 * @author 阳秋豪
 * @createTime 2024/3/6
 */
public class Test2 {
    /**
     * 打印集合
     *
     * @param list 需要打印的集合
     */
    private static void printList(List<?> list) {
        System.out.println("\n-----------------------------------");
        System.out.println("原List集合 -- " + list);
    }

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");

        // 1、for 循环(因为 List 集合有索引所以可以使用 for 循环)
        printList(list); // 原List集合 -- [张三, 李四, 王五]
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i));
        } // 张三李四王五

        // 2、迭代器 + while循环
        printList(list); // 原List集合 -- [张三, 李四, 王五]
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            System.out.print(next);
        } // 张三李四王五

        // 3、增强for循环
        printList(list); // 原List集合 -- [张三, 李四, 王五]
        for (String s : list) {
            System.out.print(s);
        } // 张三李四王五

        // 4、Lambda 表达式
        printList(list); // 原List集合 -- [张三, 李四, 王五]
        list.forEach(System.out::print); // 张三李四王五
    }
}
